The Internet and the World Wide Web (WWW or Web) have revolutionized information technology in the past two decades. As a human-to-machine and client-server technology, the Web enables any person, with a computer connected to the Internet, to access any published information on the Internet from his or her fingertips.
Web pages are documents written in, for example, Hypertext Markup Language (HTML). Due to a vast amount of web content, most web users rely on web search engines to search for useful web pages through keyword search.
To facilitate the integration of computing systems and provide more interactive user experiences and rich content to users, new web technologies, many of them based on Extensible Markup Language (XML), have been introduced in recent years. Two of these technologies are Web Services and Asynchronous JAVASCRIPT and XML (AJAX). (JAVASCRIPT is a trademark or registered trademark of Oracle and/or its affiliates.) Web Services may be described as a machine-to-machine distributed computing technology that overcomes the difficulties of enabling computer programs to communicate with each other in a heterogeneous computing environment. These difficulties are introduced by the different computer platforms, incompatible communication protocols, and various computer languages used by computer programs. As a standard-based comprehensive solution to conquer these challenges, Web Services is widely supported by industries. Web Services is based on a series of standards, such as XML, Simple Object Access Protocol (SOAP), and Web Services Description Language (WSDL). These standards provide a common format, syntax, and protocols for applications running on computers and electronic devices to exchange information among them over networks. Unlike Web Services, AJAX does not define a set of standards. AJAX enables web applications to send data from client to server asynchronously. AJAX can be utilized to implement RESTful (Representational State Transfer) Web Services.
For instance, a company may create a marketplace web site for different vendors to sell their products. Examples of web services include the web site's flexible fulfillment web service and payments web service, which are utilized to integrate the marketplace web site with the information systems of those vendors.
To facilitate publishing and searching web services, a Universal Description, Discovery and Integration (UDDI) standard had been developed. The UDDI standard defines how to create a web service UDDI registry to enable web service providers to publish their web services and to enable web service consumers to search and use these published web services.
A non-UDDI web service registry may offer web service governance features and semantic web technologies. Such web service registries or repositories store additional web services related metadata to govern the life cycles of web services. Web Ontology Language (OWL) is an ontology-based markup language, which was originally developed in academic research to present data on the web in a machine-understandable form. OWL may be used to organize the web services related metadata in a web service registry.
In conventional systems, keyword search is used by a web service consumer to find proper web services in a web service registry. The keywords of a web service can be manually specified by a web service provider. An automatic keyword generation process may be used to generate keywords from web service metadata. The combination of the manual approach and the automatic approach, such as letting the provider verify or modify the generated keywords, may also be used.
UDDI and other registries provide query Application Programming Interfaces (APIs) and/or Graphical User Interfaces (GUIs) to enable web service consumers to search for the web services published in the web service registry. With these query APIs or GUIs, users provide keywords, strings or other data of specific web service metadata fields to conduct the search.
For example, a UDDI client may query a UDDI registry to find web services based on the name, the business entity to which they belong, and the category into which they fall. In this example, the user provides the partial or full name of the web service, the business entity and/or the category to construct such a search query.
The existing web service registry technologies allow the user to search web services with composite queries. The search result of such a query is the intersection or union of the collection of the search results of the simple queries of which the composite query is made.
There is a need in the art for an improved technique of discovering services, such as web services.